home *** CD-ROM | disk | FTP | other *** search
- #include <stdio.h>
- #include <stdlib.h>
- #include <conio.h>
- #include "mtask.h"
-
- int ntasks = 1;
-
- void Task2(void)
- {
- float x1,y1,x2,y2,ix,iy;
- int num;
- x1=y1=x2=y2=10;
- ix=iy=0.9;
- num = ntasks++;
- for(;;){
- MTXYPutch(x1,y1,'@'+num);
- MTXYPutch(x2,y2,' ');
- x2=x1;
- y2=y1;
- x1 += ix;
- y1 += iy;
- ix = x1 > 79 ? -((float)(rand() % 10)+1)/10 : ix;
- ix = x1 < 2 ? ((float)(rand() % 10)+1)/10 : ix;
- iy = y1 > 23 ? -((float)(rand() % 10)+1)/10 : iy;
- iy = y1 < 2 ? ((float)(rand() % 10)+1)/10 : iy;
- }
- }
-
- void Task1(void)
- {
- char ch,buf[80];
-
- while(1) {
- sprintf(buf,"%d tasks running. Press 'a' add new task, 'r' to remove or 'q' to end.",ntasks);
- MTXYPuts(1,25,buf);
- ch = MTGetch();
- if(ch=='q') EndMultiTasking();
- else if (ch == 'a') AddNewTask((PTaskFunc) Task2);
- else if (ch == 'r') RemoveTask(--ntasks);
- }
- }
-
-
- void main(void)
- {
- clrscr();
- InitMultiTasking();
- AddNewTask((PTaskFunc) Task1);
- AddNewTask((PTaskFunc) Task2);
- StartMultiTasking();
- clrscr();
- }
-
-
-